package com.xueyi.system.BaseNyProcure.domain.po;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.BaseNyProcure.domain.dto.BaseNyProcureDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * 农业采购 持久化对象
 *
 * @author xueyi
 */
@TableName(value = "base_ny_procure", excludeProperty = {"name", "sort", "status"}, autoResultMap = true)
public class BaseNyProcurePo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 采购编码
     */
    @Excel(name = "采购编码")
    @TableField(value = "code",condition = LIKE)
    private String code;

    /**
     * 供应商id
     */
    @Excel(name = "供应商id")
    @TableField("supplier_id")
    private String supplierId;

    /**
     * 供应商名称
     */
    @Excel(name = "供应商名称")
    @TableField("supplier_name")
    private String supplierName;

    /**
     * 投入品性质
     */
    @Excel(name = "投入品性质")
    @TableField("auxiliary_type")
    private String auxiliaryType;

    /**
     * 投入品名称
     */
    @Excel(name = "投入品名称")
    @TableField("auxiliary_id")
    private String auxiliaryId;

    /**
     * 投入品名称
     */
    @Excel(name = "投入品名称")
    @TableField("auxiliary_name")
    private String auxiliaryName;

    /**
     * 投入品规格
     */
    @Excel(name = "投入品规格")
    @TableField("auxiliary_spec")
    private String auxiliarySpec;

    /**
     * 投入品单位
     */
    @Excel(name = "投入品单位")
    @TableField("auxiliary_unit")
    private String auxiliaryUnit;

    /**
     * 采购日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "procure_date",condition = LIKE)
    private LocalDateTime procureDate;

    /**
     * 采购数量
     */
    @Excel(name = "采购数量")
    @TableField("procure_num")
    private BigDecimal procureNum;

    /**
     * 采购单价
     */
    @Excel(name = "采购单价")
    @TableField("procure_price")
    private BigDecimal procurePrice;

    /**
     * 采购总价
     */
    @Excel(name = "采购总价")
    @TableField("procure_total_price")
    private BigDecimal procureTotalPrice;

    /**
     * 采购负责人
     */
    @Excel(name = "采购负责人")
    @TableField("procure_user")
    private String procureUser;

    /**
     * 采购说明
     */
    @Excel(name = "采购说明")
    @TableField("procure_caption")
    private String procureCaption;

    /**
     * 单据凭证
     */
    @Excel(name = "单据凭证")
    @TableField(value = "voucher", typeHandler = FastjsonTypeHandler.class)
    private JSONArray voucher;

    /**
     * 质检报告
     */
    @Excel(name = "质检报告")
    @TableField(value = "inspection_report", typeHandler = FastjsonTypeHandler.class)
    private JSONArray inspectionReport;

    /**
     * 采购产品图片
     */
    @Excel(name = "采购产品图片")
    @TableField(value = "procure_img", typeHandler = FastjsonTypeHandler.class)
    private JSONArray procureImg;

    public String getAuxiliaryId() {
        return auxiliaryId;
    }

    public void setAuxiliaryId(String auxiliaryId) {
        this.auxiliaryId = auxiliaryId;
    }

    public JSONArray getVoucher() {
        return voucher;
    }

    public void setVoucher(JSONArray voucher) {
        this.voucher = voucher;
    }

    public JSONArray getInspectionReport() {
        return inspectionReport;
    }

    public void setInspectionReport(JSONArray inspectionReport) {
        this.inspectionReport = inspectionReport;
    }

    public JSONArray getProcureImg() {
        return procureImg;
    }

    public void setProcureImg(JSONArray procureImg) {
        this.procureImg = procureImg;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setAuxiliaryType(String auxiliaryType) {
        this.auxiliaryType = auxiliaryType;
    }

    public String getAuxiliaryType() {
        return auxiliaryType;
    }

    public void setAuxiliaryName(String auxiliaryName) {
        this.auxiliaryName = auxiliaryName;
    }

    public String getAuxiliaryName() {
        return auxiliaryName;
    }

    public void setAuxiliarySpec(String auxiliarySpec) {
        this.auxiliarySpec = auxiliarySpec;
    }

    public String getAuxiliarySpec() {
        return auxiliarySpec;
    }

    public void setAuxiliaryUnit(String auxiliaryUnit) {
        this.auxiliaryUnit = auxiliaryUnit;
    }

    public String getAuxiliaryUnit() {
        return auxiliaryUnit;
    }

    public void setProcureDate(LocalDateTime procureDate) {
        this.procureDate = procureDate;
    }

    public LocalDateTime getProcureDate() {
        return procureDate;
    }

    public void setProcureNum(BigDecimal procureNum) {
        this.procureNum = procureNum;
    }

    public BigDecimal getProcureNum() {
        return procureNum;
    }

    public void setProcurePrice(BigDecimal procurePrice) {
        this.procurePrice = procurePrice;
    }

    public BigDecimal getProcurePrice() {
        return procurePrice;
    }

    public void setProcureTotalPrice(BigDecimal procureTotalPrice) {
        this.procureTotalPrice = procureTotalPrice;
    }

    public BigDecimal getProcureTotalPrice() {
        return procureTotalPrice;
    }

    public void setProcureUser(String procureUser) {
        this.procureUser = procureUser;
    }

    public String getProcureUser() {
        return procureUser;
    }

    public void setProcureCaption(String procureCaption) {
        this.procureCaption = procureCaption;
    }

    public String getProcureCaption() {
        return procureCaption;
    }


}
